// 什么是promise，解决了哪些问题
// promise是一个对象 用来处理异步操作 es6， 主要的特点解决异步相关的问题

// 1.回调地狱 ,嵌套的回调会导致代码出现深层次的嵌套，恶魔金字塔。代码不好维护，不好理解
// 解决方案通过链式调用来展开嵌套的逻辑

// 2.错误处理，每个回调函数在处理的时候 都需要处理错误，无法让错误处理统一
// 解决方案，promise中拥有了catch方法 来解决这个问题

// 3.并发，传统的回调的写法，通过计数器来计算
// 解决方案 Promise.all Promise.race Promise.allSetteld

// promise 目的就是更优雅， 让异步代码变得更好维护

// promise的基础版本
// 1.promise 有三个状态 pending等待态  fulfilled成功态   rejected状态 一个promise实例状态只能发生一次变化
// 2.每个promise实例都有一个then方法， then方法可以接受两个参数 （成功，失败） 回调
// 3.每个promise在创建的时候都需要传入一个executor 执行器 （立刻执行） 执行器中有两个参数 resolve，reject
// 4.pending等待态 可以变为成功（resolve）、或者失败（抛出错误 reject）
import Promise from "./promise-1.js";
const promise = new Promise((resolve, reject) => {
  //   resolve("success");
  reject("error");
  throw new Error("出错");
});
promise.then(
  function (value) {
    console.log("成功回调", value);
  },
  function (reason) {
    console.log("失败回调", reason);
  }
);
